package com.token.sysflow.bean;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
import com.token.sql.IntegrateSql;
import com.token.sql.AbstractTableBean;
/**
 * 审批中数据
 * @author 代码创建
 */
public class FSysApproveProcess extends AbstractTableBean {

	private String KeyUnid; //单据关联ID
	private int SysId; //租户ID
	private String SysAddTime; //创建时间
	private String SysAddUser; //创建人
	private String SysEditTime; //修改时间
	private String SysEditUser; //修改人
	private String AppKeyId; //关联应用编号
	private String Creater; //创建人
	private String Applyer; //申请人
	private String FlowId; //当前流程ID
	private String StepId; //当前环节ID
	private int FlowStatus; //当前流程状态
	private String Subject; //应用标题
	private String FlowNo; //流程单号
	private String PreFlowId; //上一环节流程Id
	private String PreStepId; //上一环节环节Id
	private int ApprovalType; //审批类型（普通审批，会审，会签，主-子流程，组织会审，组织会签）
	private String HSWay; //会审策略，使用分号分割
	private String ParentId; //主流程关联ID
	private String ParentStepId; //主流程环节Id
	private int IsReturned; //退回标识 1 退回
	private int FlowType; //流程类型(1 main 2 sub)
	private String PrevApprover; //退回审批人

	public static String TABLE_NAME = "F_Sys_ApproveProcess";
	public static String TABLEKEY_NAME = "KeyUnid";
	public FSysApproveProcess (IntegrateSql f){
		super(f,TABLE_NAME);
		this.setKeyName(TABLEKEY_NAME);
	}

	public FSysApproveProcess (IntegrateSql f,ResultSet rs) throws SQLException{
		super(f,TABLE_NAME);
		this.setKeyName(TABLEKEY_NAME);
		this.initParamToRs(rs);
	}

	public FSysApproveProcess (IntegrateSql f,String keyValue) throws SQLException{
		super(f,TABLE_NAME);
		this.setKeyName(TABLEKEY_NAME);
		setCodePrepare(selectCodeById().toString());
		prepareSql.setPstValue(1, keyValue);
		ResultSet rs = executeQuery();
		if(rs.next()){
			initParamToRs(rs);
		}else{
			initParam();
		}
		rs.close();
	}

	@Override
	protected void initParam() {
		KeyUnid = ""; //单据关联ID
		SysId = 0; //租户ID
		SysAddTime = ""; //创建时间
		SysAddUser = ""; //创建人
		SysEditTime = ""; //修改时间
		SysEditUser = ""; //修改人
		AppKeyId = ""; //关联应用编号
		Creater = ""; //创建人
		Applyer = ""; //申请人
		FlowId = ""; //当前流程ID
		StepId = ""; //当前环节ID
		FlowStatus = 0; //当前流程状态
		Subject = ""; //应用标题
		FlowNo = ""; //流程单号
		PreFlowId = ""; //上一环节流程Id
		PreStepId = ""; //上一环节环节Id
		ApprovalType = 0; //审批类型（普通审批，会审，会签，主-子流程，组织会审，组织会签）
		HSWay = ""; //会审策略，使用分号分割
		ParentId = ""; //主流程关联ID
		ParentStepId = ""; //主流程环节Id
		IsReturned = 0; //退回标识 1 退回
		FlowType = 0; //流程类型(1 main 2 sub)
		PrevApprover = ""; //退回审批人
	}


	public void initParamToRs(ResultSet rs) throws SQLException{
		KeyUnid = rs.getString("KeyUnid"); //单据关联ID
		SysId = rs.getInt("SysId"); //租户ID
		SysAddTime = rs.getString("SysAddTime"); //创建时间
		SysAddUser = rs.getString("SysAddUser"); //创建人
		SysEditTime = rs.getString("SysEditTime"); //修改时间
		SysEditUser = rs.getString("SysEditUser"); //修改人
		AppKeyId = rs.getString("AppKeyId"); //关联应用编号
		Creater = rs.getString("Creater"); //创建人
		Applyer = rs.getString("Applyer"); //申请人
		FlowId = rs.getString("FlowId"); //当前流程ID
		StepId = rs.getString("StepId"); //当前环节ID
		FlowStatus = rs.getInt("FlowStatus"); //当前流程状态
		Subject = rs.getString("Subject"); //应用标题
		FlowNo = rs.getString("FlowNo"); //流程单号
		PreFlowId = rs.getString("PreFlowId"); //上一环节流程Id
		PreStepId = rs.getString("PreStepId"); //上一环节环节Id
		ApprovalType = rs.getInt("ApprovalType"); //审批类型（普通审批，会审，会签，主-子流程，组织会审，组织会签）
		HSWay = rs.getString("HSWay"); //会审策略，使用分号分割
		ParentId = rs.getString("ParentId"); //主流程关联ID
		ParentStepId = rs.getString("ParentStepId"); //主流程环节Id
		IsReturned = rs.getInt("IsReturned"); //退回标识 1 退回
		FlowType = rs.getInt("FlowType"); //流程类型(1 main 2 sub)
		PrevApprover = rs.getString("PrevApprover"); //退回审批人
		this.setKeyId(rs.getString("KeyUnid"));
	}


	@Override
	protected int appendData() throws SQLException {
		int i = 1;
		prepareSql.setPstValue(i++,KeyUnid); //单据关联ID
		prepareSql.setPstValue(i++,SysId); //租户ID
		prepareSql.setPstValue(i++,SysAddTime); //创建时间
		prepareSql.setPstValue(i++,SysAddUser); //创建人
		prepareSql.setPstValue(i++,SysEditTime); //修改时间
		prepareSql.setPstValue(i++,SysEditUser); //修改人
		prepareSql.setPstValue(i++,AppKeyId); //关联应用编号
		prepareSql.setPstValue(i++,Creater); //创建人
		prepareSql.setPstValue(i++,Applyer); //申请人
		prepareSql.setPstValue(i++,FlowId); //当前流程ID
		prepareSql.setPstValue(i++,StepId); //当前环节ID
		prepareSql.setPstValue(i++,FlowStatus); //当前流程状态
		prepareSql.setPstValue(i++,Subject); //应用标题
		prepareSql.setPstValue(i++,FlowNo); //流程单号
		prepareSql.setPstValue(i++,PreFlowId); //上一环节流程Id
		prepareSql.setPstValue(i++,PreStepId); //上一环节环节Id
		prepareSql.setPstValue(i++,ApprovalType); //审批类型（普通审批，会审，会签，主-子流程，组织会审，组织会签）
		prepareSql.setPstValue(i++,HSWay); //会审策略，使用分号分割
		prepareSql.setPstValue(i++,ParentId); //主流程关联ID
		prepareSql.setPstValue(i++,ParentStepId); //主流程环节Id
		prepareSql.setPstValue(i++,IsReturned); //退回标识 1 退回
		prepareSql.setPstValue(i++,FlowType); //流程类型(1 main 2 sub)
		prepareSql.setPstValue(i++,PrevApprover); //退回审批人
		return i;
	}


	@Override
	public Vector<String> getFields() {
		Vector<String> vec = new Vector<String>();
		vec.addElement("KeyUnid"); //单据关联ID
		vec.addElement("SysId"); //租户ID
		vec.addElement("SysAddTime"); //创建时间
		vec.addElement("SysAddUser"); //创建人
		vec.addElement("SysEditTime"); //修改时间
		vec.addElement("SysEditUser"); //修改人
		vec.addElement("AppKeyId"); //关联应用编号
		vec.addElement("Creater"); //创建人
		vec.addElement("Applyer"); //申请人
		vec.addElement("FlowId"); //当前流程ID
		vec.addElement("StepId"); //当前环节ID
		vec.addElement("FlowStatus"); //当前流程状态
		vec.addElement("Subject"); //应用标题
		vec.addElement("FlowNo"); //流程单号
		vec.addElement("PreFlowId"); //上一环节流程Id
		vec.addElement("PreStepId"); //上一环节环节Id
		vec.addElement("ApprovalType"); //审批类型（普通审批，会审，会签，主-子流程，组织会审，组织会签）
		vec.addElement("HSWay"); //会审策略，使用分号分割
		vec.addElement("ParentId"); //主流程关联ID
		vec.addElement("ParentStepId"); //主流程环节Id
		vec.addElement("IsReturned"); //退回标识 1 退回
		vec.addElement("FlowType"); //流程类型(1 main 2 sub)
		vec.addElement("PrevApprover"); //退回审批人
		return vec;
	}


	/**
	 * 设置单据关联ID
	 * @param keyunid 单据关联ID
	 */
	public void setKeyUnid(String keyunid){
		KeyUnid = keyunid;
	}
	/**
	 * 获取KeyUnid
	 * @return 单据关联ID
	 */
	public String getKeyUnid(){
		return KeyUnid;
	}

	/**
	 * 设置租户ID
	 * @param sysid 租户ID
	 */
	public void setSysId(int sysid){
		SysId = sysid;
	}
	/**
	 * 获取SysId
	 * @return 租户ID
	 */
	public int getSysId(){
		return SysId;
	}

	/**
	 * 设置创建时间
	 * @param sysaddtime 创建时间
	 */
	public void setSysAddTime(String sysaddtime){
		SysAddTime = sysaddtime;
	}
	/**
	 * 获取SysAddTime
	 * @return 创建时间
	 */
	public String getSysAddTime(){
		return SysAddTime;
	}

	/**
	 * 设置创建人
	 * @param sysadduser 创建人
	 */
	public void setSysAddUser(String sysadduser){
		SysAddUser = sysadduser;
	}
	/**
	 * 获取SysAddUser
	 * @return 创建人
	 */
	public String getSysAddUser(){
		return SysAddUser;
	}

	/**
	 * 设置修改时间
	 * @param sysedittime 修改时间
	 */
	public void setSysEditTime(String sysedittime){
		SysEditTime = sysedittime;
	}
	/**
	 * 获取SysEditTime
	 * @return 修改时间
	 */
	public String getSysEditTime(){
		return SysEditTime;
	}

	/**
	 * 设置修改人
	 * @param sysedituser 修改人
	 */
	public void setSysEditUser(String sysedituser){
		SysEditUser = sysedituser;
	}
	/**
	 * 获取SysEditUser
	 * @return 修改人
	 */
	public String getSysEditUser(){
		return SysEditUser;
	}

	/**
	 * 设置关联应用编号
	 * @param appkeyid 关联应用编号
	 */
	public void setAppKeyId(String appkeyid){
		AppKeyId = appkeyid;
	}
	/**
	 * 获取AppKeyId
	 * @return 关联应用编号
	 */
	public String getAppKeyId(){
		return AppKeyId;
	}

	/**
	 * 设置创建人
	 * @param creater 创建人
	 */
	public void setCreater(String creater){
		Creater = creater;
	}
	/**
	 * 获取Creater
	 * @return 创建人
	 */
	public String getCreater(){
		return Creater;
	}

	/**
	 * 设置申请人
	 * @param applyer 申请人
	 */
	public void setApplyer(String applyer){
		Applyer = applyer;
	}
	/**
	 * 获取Applyer
	 * @return 申请人
	 */
	public String getApplyer(){
		return Applyer;
	}

	/**
	 * 设置当前流程ID
	 * @param flowid 当前流程ID
	 */
	public void setFlowId(String flowid){
		FlowId = flowid;
	}
	/**
	 * 获取FlowId
	 * @return 当前流程ID
	 */
	public String getFlowId(){
		return FlowId;
	}

	/**
	 * 设置当前环节ID
	 * @param stepid 当前环节ID
	 */
	public void setStepId(String stepid){
		StepId = stepid;
	}
	/**
	 * 获取StepId
	 * @return 当前环节ID
	 */
	public String getStepId(){
		return StepId;
	}

	/**
	 * 设置当前流程状态
	 * @param flowstatus 当前流程状态
	 */
	public void setFlowStatus(int flowstatus){
		FlowStatus = flowstatus;
	}
	/**
	 * 获取FlowStatus
	 * @return 当前流程状态
	 */
	public int getFlowStatus(){
		return FlowStatus;
	}

	/**
	 * 设置应用标题
	 * @param subject 应用标题
	 */
	public void setSubject(String subject){
		Subject = subject;
	}
	/**
	 * 获取Subject
	 * @return 应用标题
	 */
	public String getSubject(){
		return Subject;
	}

	/**
	 * 设置流程单号
	 * @param flowno 流程单号
	 */
	public void setFlowNo(String flowno){
		FlowNo = flowno;
	}
	/**
	 * 获取FlowNo
	 * @return 流程单号
	 */
	public String getFlowNo(){
		return FlowNo;
	}

	/**
	 * 设置上一环节流程Id
	 * @param preflowid 上一环节流程Id
	 */
	public void setPreFlowId(String preflowid){
		PreFlowId = preflowid;
	}
	/**
	 * 获取PreFlowId
	 * @return 上一环节流程Id
	 */
	public String getPreFlowId(){
		return PreFlowId;
	}

	/**
	 * 设置上一环节环节Id
	 * @param prestepid 上一环节环节Id
	 */
	public void setPreStepId(String prestepid){
		PreStepId = prestepid;
	}
	/**
	 * 获取PreStepId
	 * @return 上一环节环节Id
	 */
	public String getPreStepId(){
		return PreStepId;
	}

	/**
	 * 设置审批类型（普通审批，会审，会签，主-子流程，组织会审，组织会签）
	 * @param approvaltype 审批类型（普通审批，会审，会签，主-子流程，组织会审，组织会签）
	 */
	public void setApprovalType(int approvaltype){
		ApprovalType = approvaltype;
	}
	/**
	 * 获取ApprovalType
	 * @return 审批类型（普通审批，会审，会签，主-子流程，组织会审，组织会签）
	 */
	public int getApprovalType(){
		return ApprovalType;
	}

	/**
	 * 设置会审策略，使用分号分割
	 * @param hsway 会审策略，使用分号分割
	 */
	public void setHSWay(String hsway){
		HSWay = hsway;
	}
	/**
	 * 获取HSWay
	 * @return 会审策略，使用分号分割
	 */
	public String getHSWay(){
		return HSWay;
	}

	/**
	 * 设置主流程关联ID
	 * @param parentid 主流程关联ID
	 */
	public void setParentId(String parentid){
		ParentId = parentid;
	}
	/**
	 * 获取ParentId
	 * @return 主流程关联ID
	 */
	public String getParentId(){
		return ParentId;
	}

	/**
	 * 设置主流程环节Id
	 * @param parentstepid 主流程环节Id
	 */
	public void setParentStepId(String parentstepid){
		ParentStepId = parentstepid;
	}
	/**
	 * 获取ParentStepId
	 * @return 主流程环节Id
	 */
	public String getParentStepId(){
		return ParentStepId;
	}

	/**
	 * 设置退回标识 1 退回
	 * @param isreturned 退回标识 1 退回
	 */
	public void setIsReturned(int isreturned){
		IsReturned = isreturned;
	}
	/**
	 * 获取IsReturned
	 * @return 退回标识 1 退回
	 */
	public int getIsReturned(){
		return IsReturned;
	}

	/**
	 * 设置流程类型(1 main 2 sub)
	 * @param flowtype 流程类型(1 main 2 sub)
	 */
	public void setFlowType(int flowtype){
		FlowType = flowtype;
	}
	/**
	 * 获取FlowType
	 * @return 流程类型(1 main 2 sub)
	 */
	public int getFlowType(){
		return FlowType;
	}

	/**
	 * 设置退回审批人
	 * @param prevapprover 退回审批人
	 */
	public void setPrevApprover(String prevapprover){
		PrevApprover = prevapprover;
	}
	/**
	 * 获取PrevApprover
	 * @return 退回审批人
	 */
	public String getPrevApprover(){
		return PrevApprover;
	}

}
